package com.bajiao.common.util;


import cn.hutool.crypto.digest.BCrypt;
import org.apache.commons.lang3.StringUtils;

/**
 * <P>
 * 用途:密码加密工具
 * </p>
 *
 * @author: FanJq
 * @create: 2024-10-10
 **/
public class BCryptPasswordUtils {

    /**
     * 使用SpringSecurity中BCrypt加密
     *
     * @param password
     * @return
     */
    public static String encoderPassword(String password) {
        return BCrypt.hashpw(password, BCrypt.gensalt());
    }

    public static void main(String[] args) {
        System.out.println(matchPassword("123456", "$2a$10$7WiteuGrqIK/8mMfw5D/Zue64/4KzBk2WM3Pc/7huI.WMaErQKWkC"));
    }


    /**
     * 匹配密码是否匹配
     *
     * @param password        密码铭文
     * @param encodedPassword 加密后密码字符串
     * @return
     */
    public static boolean matchPassword(String password, String encodedPassword) {
        if (StringUtils.isBlank(password) || StringUtils.isBlank(encodedPassword)) {
            return false;
        }
        return BCrypt.checkpw(password, encodedPassword);
    }
}


